<?php
namespace Admin\Model;
use Think\Model;
class TypeModel extends Model{
	protected $_validate=array(
		array('typename','require','分类名称不能为空'),
		array('typename','2,20','字的个数不能超过20',0,'length'),
		array('typename','','分类名称已经被使用',0,'unique'),
		);
	/**
	 * 根据父分类id，获取子分类
	 * @param number $fid
	 * @param num 获取的是第几级分类
	 */
	function getType($fid=0,$num=1,$selectId=0){
		//指定条件 fid=$fid
		$this->where("fid=$fid");
		//查询
		$arr=$this->select();
		//拼字符串
		$optionStr="";
		$num++;
		//决定--的个数
		$strGang=str_repeat('——', $num-2);
		foreach($arr as $v){
			if($v['id']==$selectId){
			    $optionStr.="<option selected='selected' value='{$v['id']}'>{$strGang}{$v['typename']}</option>";
			}else{
				$optionStr.="<option value='{$v['id']}'>{$strGang}{$v['typename']}</option>";
			}
			//找第一级的子分类
			$optionSon=$this->getType($v['id'],$num,$selectId);
			$optionStr.=$optionSon;
		}
		//返回数据 <option value='id'>名称</option>
		return $optionStr;
	}
	
	function getTypeByTr($fid=0,$num=1){
		//指定条件 fid=$fid
		$this->where("fid=$fid");
		//查询
		$arr=$this->select();
		//拼字符串
		$trStr="";
		//决定--的个数
		$strGang=str_repeat('——', $num-1);
		$num++;
		foreach($arr as $v){
			$trStr.="<tr>
		<td>{$v['id']}</td>
		<td>{$strGang}{$v['typename']}</td>
		<td><a href=\"".U("Type/update",array('id'=>$v['id']))."\">修改</a>&nbsp;&nbsp;<a href=\"".U('Type/delete',array('id'=>$v['id']))."\">删除</a></td>
	</tr>";
			//找第一级的子分类
			$trSon=$this->getTypeByTr($v['id'],$num);
			$trStr.=$trSon;
		}
		//返回数据 <option value='id'>名称</option>
		return $trStr;
	}
	function getTypeByStr($fid=0,$num=1,$selectId=0,$fstr=""){
		//指定条件 fid=$fid
		$this->where("fid=$fid");
		//查询
		$arr=$this->select();
		//拼字符串
		$optionStr="";
		$num++;
		//决定--的个数
		$strGang=str_repeat('——', $num-1);
		$str="";
		foreach($arr as $v){
			
			if($v['id']==$selectId){
				$optionStr.="<option selected='selected' value='{$fstr}>{$v['id']}>'>{$strGang}{$v['typename']}</option>";
			}else{
				$optionStr.="<option value='{$fstr}>{$v['id']}>'>{$strGang}{$v['typename']}</option>";
			}
			//找第一级的子分类
			//拼$str ???
			$str="$fstr>{$v['id']}";
			$optionSon=$this->getTypeByStr($v['id'],$num,$selectId,$str);
			$optionStr.=$optionSon;
		}
		//返回数据 <option value='id'>名称</option>
		return $optionStr;
	}
}